<?php

// test/unit/CodigoQrTest.php
require_once dirname(__FILE__).'/../bootstrap/unit.php'; 
       
// Colocando la cantidad de pruebas unitarias a realizar
$t = new lime_test(2);

// Valores de Prueba del Paquete
        $solicitudPaquete = 3;    // valor de prueba del numero de solicitud del Paquete
		$cantidadPaquete = 1;    //  Valor de Prueba de la cantidad de paquetes por solicitud
        $pesoPaquete = 1.5;     // valor de prueba del peso del paquete
		$numFactura = 5;        // valor de prueba del numero de Factura
		
		
		$direccionFiscal = FacturaPeer::setDireccionFiscal();
		$rif = FacturaPeer::setRif();
		$envioPorPaquete = FacturaPeer::calcularMontoPorPeso($pesoPaquete);
		$iva = FacturaPeer::setIva();
		$montoTotal = FacturaPeer::calcularMontoTotalConIva($cantidadPaquete,$pesoPaquete);
		$telefono = FacturaPeer::setTelefono();
		
// Instanciando Objetos de la clase Factura
$factura = new Factura();
		$factura->setFacNumFactura($numFactura);
		$factura->setFacRif($rif);
		$factura->setFacDirFiscal($direccionFiscal);
		$factura->setFacCantPaquete($cantidadPaquete);
		$factura->setFacEnvioXPaquete($envioPorPaquete);
		$factura->setFacMontoTotal($montoTotal);
		$factura->setFacSolicitud($solicitudPaquete);
		$factura->setFacTelefonos($telefono);
		$factura->setFacId(8);
		$talFactura = $factura->getFacId();
		
// Instanciando Objetos de la clase Talonario
		$talonario = new Talonario();
		$talonario->setTalUrl('http://courier.com.localhost/solicitud/updateStatus/'.$solicitudPaquete);
		$talonario->setTalFactura($talFactura);
		
// Simple comentario para dar inicio a las pruebas unitarias
$t->comment('Iniciando las pruebas');

// Iniciando las pruebas unitarias de los atributos del cliente

   /* le Pasamos los valores de prueba a la funcion VerificarData()
    *     $solicitudPaquete == Numero de la solicitud del paquete
	*     $cantidadPaquete  == Cantidad de paquetes a enviar
	*     $pesoPaquete      == Peso del paquete
	*     $numFactura       == Numero de la factura que se genera por defecto
	*
	*     La funcion del vuelve True en el caso que los datos esten correctos
	*     sino devolvera False en el caso que los datos no cumplan con las reglas
	*     de negocio del sistema, la funcion OK verifica si la prueba Unitaria fue exitosa
	*
	*/ 
    $t->ok($ValorDevolucion=FacturaPeer::VerificarData($solicitudPaquete, $cantidadPaquete, $pesoPaquete, $numFactura));
	
	// Prueba Unitaria de la generacion del CodigoQR
	if ($ValorDevolucion){
		  $t->ok($factura->GenerarCodigoQr($talonario->getTalUrl(),$ValorDevolucion));
		  $t->pass('Se genero el Codigo QR con exito');
		}
		else{
			  $t->fail('No se pudo generar el Codigo QR');
			}
    



